Static Checking for Multiple Start of Threads in a Type-Safe Multithreaded Java
نویسندگان
چکیده
We present MTMJ, a multithreaded middleweight model language for Java which is strongly typed and prevents multiple run-time start of threads. The key point in designing the language is to balance precision and efficiency by judicious utilization of context information during type checking. While the types are flow-insensitive, the required flowdependent information is collected as type checking progresses. We prove that our type system is sound and guarantees the good behavior of welltyped programs. In particular, the execution of a typable program does not lead to multiple start of threads. We also develop a type checker as part of this research and apply it to several MTMJ programs.
منابع مشابه
Online Appendix to: Static Checking for Multiple Start of Threads in a Type-Safe Multithreaded Java
متن کامل
Exception Analysis for Multithreaded Java Programs
This paper presents a static analysis that estimates uncaught exceptions in multithreaded Java programs. In Java, throwing exceptions across threads is deprecated because of the safety problem. Instead of restricting programmers’ freedom, we extend Java language to support multithreaded exception handling and propose a tool to detect uncaught exceptions in the input programs. Our analysis consi...
متن کاملChecking Concise Specifications for Multithreaded Software
Ensuring the reliability of multithreaded software systems is difficult due to the potential for subtle interactions between threads. Unfortunately, checking tools for such systems do not scale to programs with a large number of threads and procedures. To improve this shortcoming, we present a verification technique that uses concise specifications to analyze large multithreaded programs modula...
متن کاملA Type System for Safe Region-Based Memory Management in Real-Time Java
The Real-Time Specification for Java (RTSJ) allows a program to create real-time threads with hard real-time constraints. Real-time threads use immortal memory and region-based memory management to avoid unbounded pauses caused by interference from the garbage collector. The RTSJ uses runtime checks to ensure that deleting a region does not create dangling references and that real-time threads ...
متن کاملType Safe Nondeterminism A Formal Semantics of Java Threads
We present a generic framework to transform a single-threaded operational semantics into a semantics with interleaved execution of threads. Threads can be dynamically created and use locks for synchronisation. They can suspend themselves, be notified by other threads again, and interact via shared memory. We formalised this in the proof assistant Isabelle/HOL along with theorems to carry type s...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- Journal of Object Technology
دوره 16 شماره
صفحات -
تاریخ انتشار 2017